package it.unicam.cs.cosy.bioshape.core.components.equilibriums;

import java.io.Serializable;

/**
 * Represents the generic Equilibrium condition which should be checked to exit
 * the simulation.
 * 
 * @author Federico Buti
 */
public interface EquilibriumCondition extends Serializable {

	// fornire una forma predefinita di equilibrium condition che preveda un
	// certo tempo di simulazione o cose così. Possiamo pensare a farla
	// diventare una classe astratta o un'interfaccia. Boh, vediamo.
	/**
	 * Check if the {@code EquilibriumCondition} is satisfied, given the passed
	 * parameters.
	 * 
	 * @param params
	 *            The variable set of parameters which must be checked to ensure
	 *            that the {@code EquilibriumCondition} is met.
	 * @return {@code true} if the condition is reached, {@code false} otherwise
	 */
	boolean isSatisfied(Object... params);
}
